// Logical and

// console.log(true && true)     // true
// console.log(true && false)    // false
// console.log(false && true)    // false
// console.log(false && false)   // false

// console.log(7 && 8)   // 8
// console.log(7 && 0)   // 0
// console.log(0 && 8)   // 0

// console.log('a' && 'b')  // b
// console.log(true && 'b')  // b
// console.log('a' && true)  // true
// console.log(false && 'b')  // false
// console.log('a' && false)  // false

// console.log('b' && null) // null
// console.log('b' && NaN) // NaN
// console.log('b' && 0) // 0
// console.log('b' && '') // 空
// console.log('b' && undefined) // undefined

// console.log(null && 'b') // null
// console.log(NaN && 'b') // NaN
// console.log(0 && 'b') // 0
// console.log('' && 'b') // 空
// console.log(undefined && 'b') // undefined

// console.log(null && false) // null
// console.log(false && null) // false

// console.log('a' && false)

// Bitwise and

// console.log(0b0011 & 0b0010)  // 2
// console.log(3 & 2)   // 2

// console.log(true & true)     // 1
// console.log(true & false)    // 0
// console.log(false & true)    // 0
// console.log(false & false)   // 0

// console.log(1 & true)     // 1
// console.log(1 & false)     // 0
// console.log(1 & null)     // 0
// console.log(1 & NaN)     // 0
// console.log(1 & '')     // 0
// console.log(1 & undefined)     // 0

// console.log(1 & [])     // 0
// console.log(1 & [0])     // 0
// console.log(1 & [1])     // 1
// console.log(1 & [0,1])     // 0
// console.log(1 & [1,0])     // 0
// console.log(1 & {})     // 0
// console.log(1 & '1')     // 1

// console.log(Number([]))  // 0
// console.log(Number([0])) // 0 
// console.log(Number([1])) // 1
// console.log(Number([0,1])) //0
// console.log(Number([1,0])) // NaN
// console.log(Number({})) // NaN
// console.log('1') // 1